package com.dayouzi.esaydata.service;


import com.dayouzi.esaydata.pojo.page.PageBean;
import com.dayouzi.esaydata.pojo.query.UserInfoQuery;
import com.dayouzi.esaydata.pojo.vo.UserInfoDTO;
import com.dayouzi.esaydata.pojo.vo.UserInfoVO;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author DaYouZi
 * @since 2023-03-06
 */
public interface UserInfoService {

    /**
     * 分页查询
     * @param page
     * @param limit
     * @param userInfoQuery
     * @return
     */
    PageBean<UserInfoVO> listPage(Integer page, Integer limit, UserInfoQuery userInfoQuery);

    /**
     * 根据id获取用户信息
     * @param id
     * @return
     */
    UserInfoVO getInfoById(Integer id);

    /**
     * 根据id删除用户信息
     * @param id
     * @return
     */
    Boolean removeInfoById(Integer id);

    /**
     * 根据用户id修改用户信息
     * @param userInfoDTO
     * @return
     */
    Boolean updateInfoById(UserInfoDTO userInfoDTO);

    /**
     * 新增用户信息
     * @param userInfoDTO
     * @return
     */
    Boolean insertUserInfo(UserInfoDTO userInfoDTO);

    /**
     * 根据用户账号生成随机md5密码
     * @param userAccount
     * @return
     */
    String initPassword(String userAccount);

    /**
     * 根据用户id恢复用户信息
     * @param id
     * @return
     */
    Boolean resumeById(Integer id);

    /**
     * 根据用户id永久删除用户信息
     * @param id
     * @return
     */
    Boolean foreverRemove(Integer id);
}
